package com.ruoyi.prod.service;

import com.github.pagehelper.Page;
import com.ruoyi.prod.entity.dto.ProdAssetSummary;
import com.ruoyi.prod.entity.po.ProdAsset;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.prod.entity.po.ProdPurchase;
import com.ruoyi.prod.entity.query.ProdAssetCondition;
import com.ruoyi.prod.entity.query.ProdPurchaseCondition;
import com.ruoyi.prod.enums.AssetState;

import java.util.List;

/**
 * <p>
 * 资产管理-资产台账 服务类
 * </p>
 *
 * @author 强子初
 * @since 2023-02-18
 */
public interface ProdAssetService extends IService<ProdAsset> {

    /**
     * 台账单号
     */
    String getOdd();

    /**
     * 列表
     */
    List<ProdAsset> list(ProdAsset condition);

    /**
     * 分页
     */
    Page<ProdAsset> page(ProdAsset condition);

    /**
     * 汇总
     */
    Page<ProdAssetSummary> summary(ProdAssetCondition condition);

    /**
     * 根据采购进度新增台账
     */
    List<ProdAsset> save(ProdPurchaseCondition condition);

    /**
     * 修改资产状态
     * @param id 资产id
     * @param newState 新状态
     */
    void updateToAssetState(String id, AssetState newState);

    /**
     * 修改资产状态
     * @param id 资产id
     * @param oldState 旧状态
     * @param newState 新状态
     */
    void updateToAssetState(String id, AssetState oldState, AssetState newState);
}
